package com.ilxqx.framework.system.service;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

/**
 * 搜索服务接口类
 * @author venus
 */
public interface SearchableService <T, ID, S> extends PageableService<T, ID> {

    /**
     * 根据搜索获取一页数据
     * @param searchForm 搜索条件表单
     * @param pageable 分页和排序对象
     * @return 一页数据
     */
    Page<T> getSearchedPage(S searchForm, Pageable pageable);

    /**
     * 根据操作用户和搜索获取一页数据
     * @param searchForm 搜索条件表单
     * @param pageable 分页和排序对象
     * @param operationUserId 操作用户ID
     * @return 一页数据
     */
    Page<T> getSearchedPage(S searchForm, Pageable pageable, ID operationUserId);

}
